home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / communication / bbs / hydrabbsa8 / source / src.lha / common / Shared.c < prev    next >
Encoding:
Text File  |  1996-09-08  |  8.8 KB  |  229 lines

  1.  
  2. void ClearNodeData(struct NodeSettingsData *NS) // different to InitNodeData() in Control_Main.c
  3. {
  4.   // small subroutine to set all the default values
  5.   // never call if you've allocated mem for strings!
  6.   NS->SysopAccount=NULL;
  7.   NS->NodeName=NULL;
  8.   NS->NodePhone=NULL;
  9.   NS->NodeConnectScript=NULL;
  10.  
  11.   NS->AskUserPW=FALSE;
  12.  
  13.   NS->UseSysPW=FALSE;
  14.   NS->SysPW=NULL;
  15.   NS->SysPWScript=NULL;
  16.   NS->SysPWPrompt=NULL;
  17.  
  18.   NS->UseNodePW=FALSE;
  19.   NS->NodePW=NULL;
  20.   NS->NodePWScript=NULL;
  21.   NS->NodePWPrompt=NULL;
  22.  
  23.   NS->UserNamePrompt=NULL;
  24.   NS->UserPWPrompt=NULL;
  25.  
  26.   NS->NodeLogFile=NULL;
  27.   NS->ModemLogFile=NULL;
  28.   NS->CallersLogFile=NULL;
  29.   NS->UploadLog=FALSE;
  30.   NS->DownloadLog=FALSE;
  31.  
  32.   NS->ChatFlag=FALSE;
  33.   NS->Iconified=FALSE;
  34.   NS->UseOwnScreen=FALSE;
  35.   NS->StartScreen=FALSE;
  36.   NS->AccessRequired=0;
  37.   NS->ScrModeID=0;
  38.   NS->ScrWidth=0;
  39.   NS->ScrHeight=0;
  40.   NS->ScrDepth=0;
  41.   NS->UseDevice=FALSE;
  42.   NS->AllowNewUsers=FALSE;
  43.  
  44.   NS->NodePlayPen=NULL;
  45.   NS->MaxDIZLines=0;
  46. }
  47.  
  48. void SetNodeSettingsDefaults(struct NodeSettingsData *NS) // different to InitNodeData() in Control_Main.c
  49. {
  50.   // small subroutine to set all the default values
  51.  
  52.   FreeAndSet(&NS->SysPW,"PASSWORD");
  53.   FreeAndSet(&NS->SysPWPrompt,"System PW:");
  54.   FreeAndSet(&NS->NodePW,"PASSWORD");
  55.   FreeAndSet(&NS->NodePWPrompt,"Node PW:");
  56.   FreeAndSet(&NS->UserNamePrompt,"Username:");
  57.   FreeAndSet(&NS->UserPWPrompt,"Password:");
  58.   NS->AskUserPW=TRUE;
  59.   NS->UploadLog=TRUE;
  60.   NS->DownloadLog=TRUE;
  61.   NS->ChatFlag=TRUE;
  62.   NS->UseOwnScreen=TRUE;
  63.   NS->AccessRequired=0;
  64.   NS->UseDevice=FALSE;
  65.   NS->ScrModeID=BBSGlobal->ScrModeID;
  66.   NS->ScrWidth= BBSGlobal->ScrWidth;
  67.   NS->ScrHeight=BBSGlobal->ScrHeight;
  68.   NS->ScrDepth=BBSGlobal->ScrDepth;
  69.   NS->AllowNewUsers=TRUE;
  70.   NS->MaxDIZLines=12;
  71. }
  72.  
  73.  
  74. void CopyNodeSettings(struct NodeSettingsData *dest,struct NodeSettingsData *source)
  75. {
  76.   FreeAndSet(&dest->SysopAccount      ,source->SysopAccount);
  77.   FreeAndSet(&dest->NodeName          ,source->NodeName);
  78.   FreeAndSet(&dest->NodePhone         ,source->NodePhone);
  79.   FreeAndSet(&dest->NodeConnectScript ,source->NodeConnectScript);
  80.  
  81.               dest->AskUserPW         =source->AskUserPW;
  82.  
  83.               dest->UseSysPW          =source->UseSysPW;
  84.   FreeAndSet(&dest->SysPW             ,source->SysPW);
  85.   FreeAndSet(&dest->SysPWScript       ,source->SysPWScript);
  86.   FreeAndSet(&dest->SysPWPrompt       ,source->SysPWPrompt);
  87.  
  88.               dest->UseNodePW         =source->UseNodePW;
  89.   FreeAndSet(&dest->NodePW            ,source->NodePW);
  90.   FreeAndSet(&dest->NodePWScript      ,source->NodePWScript);
  91.   FreeAndSet(&dest->NodePWPrompt      ,source->NodePWPrompt);
  92.  
  93.   FreeAndSet(&dest->UserNamePrompt    ,source->UserNamePrompt);
  94.   FreeAndSet(&dest->UserPWPrompt      ,source->UserPWPrompt);
  95.  
  96.   FreeAndSet(&dest->NodeLogFile       ,source->NodeLogFile);
  97.   FreeAndSet(&dest->ModemLogFile      ,source->ModemLogFile);
  98.   FreeAndSet(&dest->CallersLogFile    ,source->CallersLogFile);
  99.               dest->UploadLog         =source->UploadLog;
  100.               dest->DownloadLog       =source->DownloadLog;
  101.  
  102.               dest->ChatFlag          =source->ChatFlag;
  103.               dest->Iconified         =source->Iconified;
  104.               dest->UseOwnScreen      =source->UseOwnScreen;
  105.               dest->StartScreen       =source->StartScreen;
  106.               dest->AccessRequired    =source->AccessRequired;
  107.  
  108.               dest->ScrModeID         =source->ScrModeID;
  109.               dest->ScrWidth          =source->ScrWidth;
  110.               dest->ScrHeight         =source->ScrHeight;
  111.               dest->ScrDepth          =source->ScrDepth;
  112.  
  113.               dest->UseDevice         =source->UseDevice;
  114.               dest->AllowNewUsers     =source->AllowNewUsers;
  115.   FreeAndSet(&dest->NodePlayPen       ,source->NodePlayPen);
  116.               dest->MaxDIZLines       =source->MaxDIZLines;
  117. }
  118.  
  119. void FreeNodeSettingsData(struct NodeSettingsData *NS) // different to InitNodeData() in Control_Main.c
  120. {
  121.   FreeStr(NS->SysopAccount);
  122.   FreeStr(NS->NodeName);
  123.   FreeStr(NS->NodePhone);
  124.   FreeStr(NS->NodeConnectScript);
  125.  
  126.   FreeStr(NS->SysPW);
  127.   FreeStr(NS->SysPWScript);
  128.   FreeStr(NS->SysPWPrompt);
  129.  
  130.   FreeStr(NS->NodePW);
  131.   FreeStr(NS->NodePWScript);
  132.   FreeStr(NS->NodePWPrompt);
  133.  
  134.   FreeStr(NS->UserNamePrompt);
  135.   FreeStr(NS->UserPWPrompt);
  136.  
  137.   FreeStr(NS->NodeLogFile);
  138.   FreeStr(NS->ModemLogFile);
  139.   FreeStr(NS->CallersLogFile);
  140.   FreeStr(NS->NodePlayPen);
  141. }
  142.  
  143.  
  144. V_ERROR LoadNodeSettingsData(ULONG NodeNum,struct NodeSettingsData *NS )
  145. {
  146.   struct CfgFileData *NodeCFG;
  147.   V_ERROR error=TYPE_NONE;
  148.   UBYTE *filename=NULL;
  149.   struct NodeData *ND;
  150.  
  151.   if (NodeNum==NODE_GLOBAL) // as opposed to a valid nodenumber... hmm, does this mean we are limited to ULONG nodes ? :-))))))
  152.   {
  153.     // only clear for global
  154.     ClearNodeData(NS);
  155.     SetNodeSettingsDefaults(NS);
  156.     filename=FILE_NODEGLOBAL;
  157.   }
  158.   else
  159.   {
  160.     if (ND=(struct NodeData*)GetNode(BBSGlobal->NodeList,NodeNum))
  161.     {
  162.       // erk, i can't belive i did this...                vvvvvvvvvvvvvvvvvvvvvvvvv
  163.       if (filename=AllocVec(strlen(ND->NodeLocation)+30/*strlen(FILENAME_NODELOCAL)+1*/,MEMF_PUBLIC))
  164.       {
  165.         strcpy(filename,ND->NodeLocation);
  166.         strcat(filename,FILENAME_NODELOCAL);
  167.       }
  168.     }
  169.   }
  170.  
  171.   if (filename)
  172.   {
  173.     if (NodeCFG=HBBS_LoadConfig(filename,LCFG_NONE))
  174.     {
  175.       // get settings!
  176.       HBBS_GetSetting(NodeCFG,(void *)&NS->SysopAccount     ,VTYPE_STRING,OPT_NODE_SysopAccount,OPT_SINGLE);
  177.  
  178.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodeName         ,VTYPE_STRING,OPT_NODE_NodeName,OPT_SINGLE);
  179.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodePhone        ,VTYPE_STRING,OPT_NODE_NodePhone,OPT_SINGLE);
  180.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodeConnectScript,VTYPE_STRING,OPT_NODE_NodeConnectScript,OPT_SINGLE);
  181.  
  182.       HBBS_GetSetting(NodeCFG,(void *)&NS->AskUserPW        ,VTYPE_BOOL,OPT_NODE_AskUserPW ,OPT_SINGLE);
  183.  
  184.       HBBS_GetSetting(NodeCFG,(void *)&NS->UseSysPW         ,VTYPE_BOOL,OPT_NODE_UseSysPW ,OPT_SINGLE);
  185.       HBBS_GetSetting(NodeCFG,(void *)&NS->SysPW            ,VTYPE_STRING,OPT_NODE_SysPW,OPT_SINGLE);
  186.       HBBS_GetSetting(NodeCFG,(void *)&NS->SysPWScript      ,VTYPE_STRING,OPT_NODE_SysPWScript,OPT_SINGLE);
  187.       HBBS_GetSetting(NodeCFG,(void *)&NS->SysPWPrompt      ,VTYPE_STRING,OPT_NODE_SysPWPrompt ,OPT_SINGLE);
  188.  
  189.       HBBS_GetSetting(NodeCFG,(void *)&NS->UseNodePW        ,VTYPE_BOOL,OPT_NODE_UseNodePW ,OPT_SINGLE);
  190.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodePW           ,VTYPE_STRING,OPT_NODE_NodePW,OPT_SINGLE);
  191.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodePWScript     ,VTYPE_STRING,OPT_NODE_NodePWScript,OPT_SINGLE);
  192.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodePWPrompt     ,VTYPE_STRING,OPT_NODE_NodePWPrompt ,OPT_SINGLE);
  193.  
  194.       HBBS_GetSetting(NodeCFG,(void *)&NS->UserNamePrompt   ,VTYPE_STRING,OPT_NODE_UserNamePrompt ,OPT_SINGLE);
  195.       HBBS_GetSetting(NodeCFG,(void *)&NS->UserPWPrompt     ,VTYPE_STRING,OPT_NODE_UserPWPrompt ,OPT_SINGLE);
  196.  
  197.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodeLogFile      ,VTYPE_STRING,OPT_NODE_NodeLogFile,OPT_SINGLE);
  198.       HBBS_GetSetting(NodeCFG,(void *)&NS->ModemLogFile     ,VTYPE_STRING,OPT_NODE_ModemLogFile ,OPT_SINGLE);
  199.       HBBS_GetSetting(NodeCFG,(void *)&NS->CallersLogFile   ,VTYPE_STRING,OPT_NODE_CallersLogFile ,OPT_SINGLE);
  200.  
  201.       HBBS_GetSetting(NodeCFG,(void *)&NS->UploadLog        ,VTYPE_BOOL,OPT_NODE_UploadLog ,OPT_SINGLE);
  202.       HBBS_GetSetting(NodeCFG,(void *)&NS->DownloadLog      ,VTYPE_BOOL,OPT_NODE_DownloadLog ,OPT_SINGLE);
  203.  
  204.       HBBS_GetSetting(NodeCFG,(void *)&NS->ChatFlag         ,VTYPE_BOOL,OPT_NODE_ChatFlag ,OPT_SINGLE);
  205.       HBBS_GetSetting(NodeCFG,(void *)&NS->Iconified        ,VTYPE_BOOL,OPT_NODE_Iconified ,OPT_SINGLE);
  206.       HBBS_GetSetting(NodeCFG,(void *)&NS->UseOwnScreen     ,VTYPE_BOOL,OPT_NODE_UseOwnScreen ,OPT_SINGLE);
  207.       HBBS_GetSetting(NodeCFG,(void *)&NS->StartScreen      ,VTYPE_BOOL,OPT_NODE_StartScreen ,OPT_SINGLE);
  208.  
  209.       HBBS_GetSetting(NodeCFG,(void *)&NS->AccessRequired   ,VTYPE_SMALLNUM,OPT_NODE_AccessRequired,OPT_SINGLE);
  210.  
  211.       HBBS_GetSetting(NodeCFG,(void *)&NS->ScrModeID        ,VTYPE_BIGNUM,OPT_NODE_ScrModeID,OPT_SINGLE);
  212.       HBBS_GetSetting(NodeCFG,(void *)&NS->ScrHeight        ,VTYPE_BIGNUM,OPT_NODE_ScrHeight,OPT_SINGLE);
  213.       HBBS_GetSetting(NodeCFG,(void *)&NS->ScrWidth         ,VTYPE_BIGNUM,OPT_NODE_ScrWidth,OPT_SINGLE);
  214.       HBBS_GetSetting(NodeCFG,(void *)&NS->ScrDepth         ,VTYPE_BIGNUM,OPT_NODE_ScrDepth,OPT_SINGLE);
  215.  
  216.       HBBS_GetSetting(NodeCFG,(void *)&NS->UseDevice        ,VTYPE_BOOL,OPT_NODE_UseDevice ,OPT_SINGLE);
  217.       HBBS_GetSetting(NodeCFG,(void *)&NS->AllowNewUsers    ,VTYPE_BOOL,OPT_NODE_AllowNewUsers ,OPT_SINGLE);
  218.  
  219.       HBBS_GetSetting(NodeCFG,(void *)&NS->NodePlayPen      ,VTYPE_PATH,OPT_NODE_NodePlayPen ,OPT_SINGLE);
  220.       HBBS_GetSetting(NodeCFG,(void *)&NS->MaxDIZLines      ,VTYPE_SMALLNUM,OPT_NODE_MaxDIZLines ,OPT_SINGLE);
  221.  
  222.       HBBS_FlushConfig(NodeCFG);
  223.     }
  224.     if (NodeNum!=NODE_GLOBAL) FreeVec(filename);
  225.   }
  226.   return(error);
  227. }
  228.  
  229.